//使用类
//通过类封装，让代码更有复用性

class WxRequest{
  //定义实例属性，用来设置默认请求参数
  defaults={
      baseURL:'',//请求基准地址
      url:'',//接口请求路径,
      data:null,
      method:'GET',
      header:{
        'Content-type':'application/json' //设置请求头
      },
      timeout:60000 //默认超时时长，
  }
  //初始化和创建类的属性以及方法
  constructor(params={}){
    //传入的参数覆盖默认的参数，传入参数放最后
      this.defaults = Object.assign({},this.defaults,params)
  }

  request(options){
      //可以将default URL 和 options的 URL 合并
      options.url = this.defaults.baseURL + options.url

      //合并请求参数
      options = {...this.defaults,...options}
      //使用promise,处理异步请求
      return new Promise((resolve,reject)=>{
            wx.request({
                ...options,
                //成功时调用success
                success:(res)=>{
                    resolve(res)
                },
                //失败时调用success
                fail:(res)=>{
                    reject(res)
                }
            })
      })
  }
}
//实例化微信请求
const instance  =  new WxRequest()

export default instance